package com.dyj.applet.domain.query;

import com.dyj.common.domain.query.BaseSubscriptionQuery;
import com.dyj.common.enums.SubscriptionAccessTokenTypeEnum;

public class QueryAppSubscriptionTplListQuery extends BaseSubscriptionQuery {

    /**
     * <p>服务类目id，多个id用英文逗号隔开，<span style="color: #171A1C;">可以通过</span><a href="https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/category/query-app-categories" target="_blank" rel="nofollow" class="syl-link" elementtiming="element-timing">获取已设置的服务类目接口</a>获取小程序的服务类目，只能是已经审核通过的服务类目</p> 选填
     */
    private String categoryIds;

    /**
     * 订阅消息类型
     */
    private Integer classification;

    /**
     * 分页编号，从1开始
     */
    private Integer pageNum;

    /**
     * 分页大小，小于等于50
     */
    private Integer pageSize;

    public String getCategoryIds() {
        return categoryIds;
    }

    public QueryAppSubscriptionTplListQuery setCategoryIds(String categoryIds) {
        this.categoryIds = categoryIds;
        return this;
    }

    public Integer getClassification() {
        return classification;
    }

    public QueryAppSubscriptionTplListQuery setClassification(Integer classification) {
        this.classification = classification;
        return this;
    }

    public Integer getPageNum() {
        return pageNum;
    }

    public QueryAppSubscriptionTplListQuery setPageNum(Integer pageNum) {
        this.pageNum = pageNum;
        return this;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public QueryAppSubscriptionTplListQuery setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
        return this;
    }

    public static QueryAppSubscriptionTplListQueryBuilder builder() {
        return new QueryAppSubscriptionTplListQueryBuilder();
    }

    public static final class QueryAppSubscriptionTplListQueryBuilder {
        private String categoryIds;
        private Integer classification;
        private Integer pageNum;
        private Integer pageSize;
        private SubscriptionAccessTokenTypeEnum accessTokenTypeEnum;
        private Integer tenantId;
        private String clientKey;

        private QueryAppSubscriptionTplListQueryBuilder() {
        }

        public QueryAppSubscriptionTplListQueryBuilder categoryIds(String categoryIds) {
            this.categoryIds = categoryIds;
            return this;
        }

        public QueryAppSubscriptionTplListQueryBuilder classification(Integer classification) {
            this.classification = classification;
            return this;
        }

        public QueryAppSubscriptionTplListQueryBuilder pageNum(Integer pageNum) {
            this.pageNum = pageNum;
            return this;
        }

        public QueryAppSubscriptionTplListQueryBuilder pageSize(Integer pageSize) {
            this.pageSize = pageSize;
            return this;
        }

        public QueryAppSubscriptionTplListQueryBuilder accessTokenTypeEnum(SubscriptionAccessTokenTypeEnum accessTokenTypeEnum) {
            this.accessTokenTypeEnum = accessTokenTypeEnum;
            return this;
        }

        public QueryAppSubscriptionTplListQueryBuilder tenantId(Integer tenantId) {
            this.tenantId = tenantId;
            return this;
        }

        public QueryAppSubscriptionTplListQueryBuilder clientKey(String clientKey) {
            this.clientKey = clientKey;
            return this;
        }

        public QueryAppSubscriptionTplListQuery build() {
            QueryAppSubscriptionTplListQuery queryAppSubscriptionTplListQuery = new QueryAppSubscriptionTplListQuery();
            queryAppSubscriptionTplListQuery.setCategoryIds(categoryIds);
            queryAppSubscriptionTplListQuery.setClassification(classification);
            queryAppSubscriptionTplListQuery.setPageNum(pageNum);
            queryAppSubscriptionTplListQuery.setPageSize(pageSize);
            queryAppSubscriptionTplListQuery.setAccessTokenTypeEnum(accessTokenTypeEnum);
            queryAppSubscriptionTplListQuery.setTenantId(tenantId);
            queryAppSubscriptionTplListQuery.setClientKey(clientKey);
            return queryAppSubscriptionTplListQuery;
        }
    }
}
